package com.sojson.config.mybatis.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 数据权限过滤注解
 * 
 * @author liu
 * @date 2022-11-11
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataScope {

    /** 是否默认拼接到sql后面 */
    boolean isDefault() default false;

    /** 部门表的别名 */
    String deptAlias() default "";

    /** 部门表的字段名 */
    String deptField() default "";

    /** 部门是否获取空值 */
    boolean deptIsNull() default true;

    /** 部门为个人权限是否获取空值 */
    boolean deptSelfIsNull() default false;

    /** 用户表的别名 */
    String userAlias() default "";

    /** 用户表的字段名 */
    String userField() default "";

    /** 用户是否查自己的 */
    boolean userIsThis() default true;

    /** 用户是否获取空值 */
    boolean userIsNull() default false;

    /** 角色表的别名 */
    String roleAlias() default "";

    /** 角色表的字段名 */
    String roleField() default "";

    /** 角色是否查全部(是否包含禁用) */
    boolean roleIsAll() default false;

}